package com.fractalist.man.base;

import java.util.List;
import java.util.Map;

public interface IBaseService {

	/**
	 * 添加数据<br/>
	 * 
	 * @param sql
	 * @return 返回数据的id
	 */
	public Long add(String sql);

	/**
	 * 更新数据<br/>
	 * 
	 * @param sql
	 * @return 是否更新成功，通过返回更新记录的条数进行判断
	 */
	public Boolean update(String sql);

	/**
	 * 查询一条记录
	 * 
	 * @param sql
	 * @return
	 */
	public Map<String, Object> queryOneRow(String sql);

	/**
	 * 查询一组记录
	 * 
	 * @param sql
	 * @return
	 */
	public List<Map<String, Object>> queryList(String sql);

	/**
	 * 查询一条记录
	 * 
	 * @param sql
	 * @return
	 */
	public Map<String, Object> queryOneRowFromDbOrCache(String sql,
			String expire);

	/**
	 * 查询一组记录
	 * 
	 * @param sql
	 * @return
	 */
	public List<Map<String, Object>> queryListFromDbOrCache(String sql,
			String expire);

	/**
	 * 通过batch的方式，一次批量提交sql语句并执行 F
	 * 
	 * @param sql
	 * @return
	 */
	public int[] batchUpdate(String[] sql);

	/**
	 * 执行一条sql语句，不管是否会执行成功
	 * 
	 * @param sql
	 */
	public void excute(String sql);
}
